home *** CD-ROM | disk | FTP | other *** search
/ Visual Basic Toolbox / Visual Basic Toolbox (P.I.E.)(1996).ISO / mail / mailx6 / _setup.1 / demo95fr.pas < prev    next >
Encoding:
Pascal/Delphi Source File  |  1996-04-19  |  11.2 KB  |  436 lines

  1. unit demo95fr;
  2.  
  3. interface
  4.  
  5. uses
  6.   Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
  7.   StdCtrls, ComCtrls, Buttons, ExtCtrls, MXMAILX, password;
  8.  
  9. {$I MAILXDEF.INT}
  10.  
  11. type
  12.   TFormWin95 = class(TForm)
  13.     StatusBar1: TStatusBar;
  14.     PageControl1: TPageControl;
  15.     Container: TTabSheet;
  16.     Recipients: TTabSheet;
  17.     Attachments: TTabSheet;
  18.     PageMessage: TTabSheet;
  19.     Panel1: TPanel;
  20.     ProgressBar1: TProgressBar;
  21.     TreeView1: TTreeView;
  22.     ListView1: TListView;
  23.     Panel2: TPanel;
  24.     btnLogin: TSpeedButton;
  25.     btnScan: TSpeedButton;
  26.     btnMail: TSpeedButton;
  27.     btnRecipient: TSpeedButton;
  28.     btnFile: TSpeedButton;
  29.     btnPassword: TSpeedButton;
  30.     szResolve: TEdit;
  31.     btnResolve: TSpeedButton;
  32.     btnAdd: TSpeedButton;
  33.     btnAddress: TSpeedButton;
  34.     ListView2: TListView;
  35.     GroupBox1: TGroupBox;
  36.     szSubject: TEdit;
  37.     szTime: TEdit;
  38.     szFrom: TEdit;
  39.     btnSend: TSpeedButton;
  40.     btnForward: TSpeedButton;
  41.     btnReply: TSpeedButton;
  42.     ImageList1: TImageList;
  43.     MXForm1: TMXForm;
  44.     MXSession1: TMXSession;
  45.     MXMessage1: TMXMessage;
  46.     MXMessage2: TMXMessage;
  47.     MXRecipient1: TMXRecipient;
  48.     MXFile1: TMXFile;
  49.     Label1: TLabel;
  50.     szCount: TLabel;
  51.     Label2: TLabel;
  52.     Label3: TLabel;
  53.     Label4: TLabel;
  54.     Label5: TLabel;
  55.     Label6: TLabel;
  56.     Label7: TLabel;
  57.     szFiles: TLabel;
  58.     szNote: TRichEdit;
  59.     procedure btnLoginClick(Sender: TObject);
  60.     procedure TreeView1Collapsing(Sender: TObject; Node: TTreeNode;
  61.       var AllowCollapse: Boolean);
  62.     procedure TreeView1Expanding(Sender: TObject; Node: TTreeNode;
  63.       var AllowExpansion: Boolean);
  64.     procedure btnScanClick(Sender: TObject);
  65.     procedure btnMailClick(Sender: TObject);
  66.     procedure btnRecipientClick(Sender: TObject);
  67.     procedure btnFileClick(Sender: TObject);
  68.     procedure TreeView1DblClick(Sender: TObject);
  69.     procedure btnResolveClick(Sender: TObject);
  70.     procedure btnAddClick(Sender: TObject);
  71.     procedure btnAddressClick(Sender: TObject);
  72.     procedure ListView1DblClick(Sender: TObject);
  73.     procedure btnSendClick(Sender: TObject);
  74.     procedure btnForwardClick(Sender: TObject);
  75.     procedure btnReplyClick(Sender: TObject);
  76.     procedure btnPasswordClick(Sender: TObject);
  77.   private
  78.     { Private declarations }
  79.     procedure LoginMailSystem;
  80.     procedure UpdateStatusBar;
  81.     function  IsActiveSession:Boolean;
  82.     procedure Refresh_Inbox;
  83.     procedure Refresh_Recipient;
  84.     procedure Refresh_FileList;
  85.     procedure ClearTreeView;
  86.   public
  87.     { Public declarations }
  88.   end;
  89.  
  90. var
  91.   FormWin95: TFormWin95;
  92.  
  93. implementation
  94.  
  95. {$R *.DFM}
  96.  
  97. procedure TFormWin95.btnLoginClick(Sender: TObject);
  98. begin
  99.      LoginMailSystem;
  100.      If MXSession1.Logon = False Then
  101.      begin
  102.         TreeView1.Items.Clear;
  103.         ListView2.Items.Clear;
  104.      end;
  105. end;
  106.  
  107. procedure TFormWin95.LoginMailSystem;
  108. begin
  109.      MXSession1.Logon:=TRUE;
  110.      UpdateStatusBar;
  111.      if IsActiveSession=true then
  112.      begin
  113.           PageControl1.ActivePage:=Container;
  114.           Application.ProcessMessages;
  115.           Refresh_Inbox;
  116.      end;
  117. end;
  118.  
  119. procedure TFormWin95.UpdateStatusBar;
  120. var
  121.    Texto: string;
  122.    Office: string;
  123. begin
  124.     If MXSession1.Logon = True Then
  125.     begin
  126.         Office:=MXSession1.POPath;
  127.         Texto:='Mail eXtension: Active Session. Current PostOffice='+Office;
  128.         StatusBar1.SimpleText:=Texto;
  129.     end
  130.     else
  131.         StatusBar1.SimpleText:= 'Mail eXtension Session Closed';
  132. end;
  133.  
  134. function  TFormWin95.IsActiveSession:Boolean;
  135. begin
  136.     If MXSession1.Logon = True Then
  137.         Result:= True
  138.     Else
  139.     begin
  140.         Result:= False;
  141.         MessageBox(0,'No active Session available','Mail eXtension Win 95 DEMO 32',64);
  142.     end;
  143. end;
  144.  
  145. procedure TFormWin95.ClearTreeView;
  146. var
  147.    Count: Integer;
  148.    Index: Integer;
  149.    PData: PString;
  150. begin
  151.      { Borrar Objetos del Tree View}
  152.      Count:=TreeView1.Items.Count;
  153.      for Index:=0 to (Count-1) do
  154.      begin
  155.         PData:=TreeView1.Items[Index].Data;
  156.         if PData<> nil then
  157.         begin
  158.              DisposeStr(PData);
  159.         end;
  160.      end;
  161.      TreeView1.Items.Clear;
  162. end;
  163.  
  164. procedure TFormWin95.Refresh_Inbox;
  165. var
  166.    nMsgCount: DWord;
  167.    cNode: TTreeNode;
  168.    cNode2: TTreeNode;
  169.    PData: PString;
  170. begin
  171.      Cursor:=crHourGlass;
  172.      TreeView1.Cursor:=crHourGlass;
  173.      Application.ProcessMessages;
  174.      ClearTreeView;
  175.     
  176.      nMsgCount:=MXMessage1.MsgCount;
  177.      szCount.Caption:=IntToStr(nMsgCount);
  178.      if nMsgCount<>0 then
  179.      begin
  180.         ProgressBar1.Position:= 0;
  181.         ProgressBar1.Max:= nMsgCount;
  182.         cNode:=TreeView1.Items.Add(nil,'Inbox');
  183.         cNode.ImageIndex:=0;
  184.         cNode.SelectedIndex:=0;
  185.         MXMessage1.Action:=ACTION_FINDFIRST;
  186.         while MXMessage1.FetchMsg<>0 do
  187.         begin
  188.              ProgressBar1.Position:= ProgressBar1.Position + 1;
  189.              PData:=NewStr(MXMessage1.MsgID);
  190.              cNode2:=TreeView1.Items.AddChildObject(cNode, MXMessage1.Subject,PData);
  191.              If MXMessage1.UnreadMsg = True Then
  192.              begin
  193.                 cNode2.ImageIndex:=2;
  194.                 cNode2.SelectedIndex:=2;
  195.              end
  196.              Else
  197.              begin
  198.                 cNode2.ImageIndex:=3;
  199.                 cNode2.SelectedIndex:=3;
  200.              end;
  201.              MXMessage1.Action:= ACTION_FINDNEXT;
  202.         end;
  203.         ProgressBar1.Position:= 0;
  204.      end;
  205.      TreeView1.Cursor:=crArrow;
  206.      Cursor:=crArrow;
  207. end;
  208.  
  209.  
  210. procedure TFormWin95.TreeView1Collapsing(Sender: TObject; Node: TTreeNode;
  211.   var AllowCollapse: Boolean);
  212. begin
  213.     If Node.ImageIndex = 1 Then
  214.     begin
  215.         Node.ImageIndex:= 0;
  216.         Node.SelectedIndex:=0;
  217.     end;
  218. end;
  219.  
  220. procedure TFormWin95.TreeView1Expanding(Sender: TObject; Node: TTreeNode;
  221.   var AllowExpansion: Boolean);
  222. begin
  223.     If Node.ImageIndex = 0 Then
  224.     begin
  225.         Node.ImageIndex:= 1;
  226.         Node.SelectedIndex:=1;
  227.     end;
  228. end;
  229.  
  230. procedure TFormWin95.btnScanClick(Sender: TObject);
  231. begin
  232.      Cursor:=crHourGlass;
  233.      PageControl1.ActivePage:=Container;
  234.      Application.ProcessMessages;
  235.      If IsActiveSession = True Then Refresh_Inbox;
  236.      Cursor:=crArrow;
  237. end;
  238.  
  239. procedure TFormWin95.btnMailClick(Sender: TObject);
  240. begin
  241.      Cursor:=crHourGlass;
  242.      Application.ProcessMessages;
  243.      PageControl1.ActivePage:=PageMessage;
  244.      Cursor:=crArrow;
  245. end;
  246.  
  247. procedure TFormWin95.btnRecipientClick(Sender: TObject);
  248. begin
  249.      Cursor:=crHourGlass;
  250.      Application.ProcessMessages;
  251.      PageControl1.ActivePage:=Recipients;
  252.      Cursor:=crArrow;
  253. end;
  254.  
  255. procedure TFormWin95.btnFileClick(Sender: TObject);
  256. begin
  257.      Cursor:=crHourGlass;
  258.      Application.ProcessMessages;
  259.      PageControl1.ActivePage:=Attachments;
  260.      Cursor:=crArrow;
  261. end;
  262.  
  263. procedure TFormWin95.TreeView1DblClick(Sender: TObject);
  264. var
  265.    ItemX: TTreeNode;
  266.    ParentX: TTreeNode;
  267.    PData: PString;
  268. begin
  269.      ItemX:= TreeView1.Selected;
  270.      if (ItemX=nil) then Exit;
  271.      ParentX:=ItemX.Parent;
  272.      if ((ParentX=nil)) then Exit;
  273.      Cursor:=crHourGlass;
  274.      Application.ProcessMessages;
  275.  
  276.      PData:=ItemX.Data;
  277.      if (PData=nil) then
  278.      begin
  279.           MessageBox(0,'Invalid Message ID','Mail X DEMO 95',MB_OK);
  280.           Exit;
  281.      end;
  282.  
  283.      MXMessage2.MsgID:= PData^;
  284.      If ItemX.ImageIndex=2 Then ItemX.ImageIndex:= 3;
  285.      if MXMessage2.ErrorNum=0 then
  286.      begin
  287.           szSubject.Text:=MXMessage2.Subject;
  288.           szTime.Text:= MXMessage2.TimeReceived;
  289.           szNote.Lines:=MXMessage2.NoteText;
  290.           MXRecipient1.FetchType:=ftORIGINATOR;
  291.           MXRecipient1.ObjRef:=MXMessage2.ObjRef;
  292.           szFrom.Text:=MXRecipient1.RecipientName;
  293.           MXFile1.ObjRef:=MXMessage2.ObjRef;
  294.           Refresh_FileList;
  295.           Refresh_Recipient;
  296.           PageControl1.ActivePage:=PageMessage;
  297.      end;
  298.  
  299.      Cursor:=crArrow;
  300. end;
  301.  
  302. procedure TFormWin95.Refresh_Recipient;
  303. var
  304.    nReciCount,nCurReci: Integer;
  305.    cItem: TListItem;
  306. begin
  307.     nReciCount:= MXRecipient1.RecipientCount;
  308.     ListView1.Items.Clear;
  309.     If nReciCount <> 0 Then
  310.    begin
  311.         For nCurReci:= 1 To nReciCount do
  312.         begin
  313.             MXRecipient1.RecipientNum:= nCurReci;
  314.             cItem:=ListView1.Items.Add;
  315.             cItem.Caption:=MXRecipient1.RecipientName;
  316.             cItem.ImageIndex:=4;
  317.             cItem.Data:=Pointer(nCurReci);
  318.         end;
  319.     end;
  320. end;
  321.  
  322. procedure TFormWin95.Refresh_FileList;
  323. var
  324.    nFileCount,nCurFile: Integer;
  325.    cItem: TListItem;
  326. begin
  327.     nFileCount:= MXFile1.FileCount;
  328.     szFiles.Caption:=IntToStr(nFileCount);
  329.     ListView2.Items.Clear;
  330.     If nFileCount <> 0 Then
  331.     begin
  332.         For nCurFile:= 1 To nFileCount do
  333.         begin
  334.             MXFile1.FileNum:= nCurFile;
  335.             cItem:=ListView2.Items.Add;
  336.             cItem.Caption:=IntToStr(nCurFile);
  337.             cItem.SubItems.Add(MXFile1.FileName);
  338.             cItem.SubItems.Add(MXFile1.FilePath);
  339.  
  340.         end;
  341.     end;
  342. end;
  343.  
  344. procedure TFormWin95.btnResolveClick(Sender: TObject);
  345. begin
  346.     If IsActiveSession = True Then
  347.     begin
  348.         MXRecipient1.ResolveName:= szResolve.Text;
  349.         szResolve.Text:= MXRecipient1.ResolveName;
  350.     end;
  351. end;
  352.  
  353. procedure TFormWin95.btnAddClick(Sender: TObject);
  354. begin
  355.     If IsActiveSession = True Then
  356.     begin
  357.         MXRecipient1.Action:= ACTION_ADDRECIPIENT;
  358.         Refresh_Recipient;
  359.     end;
  360. end;
  361.  
  362. procedure TFormWin95.btnAddressClick(Sender: TObject);
  363. begin
  364.     If IsActiveSession = True Then
  365.     begin
  366.         MXRecipient1.Action:= ACTION_ADDRESS;
  367.         Refresh_Recipient;
  368.     end;
  369. end;
  370.  
  371. procedure TFormWin95.ListView1DblClick(Sender: TObject);
  372. var
  373.    ItemX: TListItem;
  374.    ReciID: Integer;
  375. begin
  376.     ItemX:= ListView1.Selected;
  377.     if (ItemX=nil) then Exit;
  378.     ReciID:=Integer(ItemX.Data);
  379.     MXRecipient1.RecipientNum:= ReciID;
  380.     MXRecipient1.Action:= ACTION_DETAILS;
  381. end;
  382.  
  383. procedure TFormWin95.btnSendClick(Sender: TObject);
  384. begin
  385.     If IsActiveSession = True Then
  386.     begin
  387.         MXMessage2.Action:= ACTION_NEW;
  388.         MXMessage2.Action:= ACTION_SENDMSG;
  389.         If MXMessage2.ErrorNum <> 0 Then
  390.         begin
  391.             MessageBox(0,'Unable to Send Message','Mail eXtension v1.51',64);
  392.         end;
  393.     end;
  394. end;
  395.  
  396. procedure TFormWin95.btnForwardClick(Sender: TObject);
  397. begin
  398.     If IsActiveSession = True Then
  399.     begin
  400.         MXMessage2.Action:= ACTION_FORWARD;
  401.         MXMessage2.Action:= ACTION_SENDMSG;
  402.         If MXMessage2.ErrorNum <> 0 Then
  403.         begin
  404.             MessageBox(0,'Unable to Send Message','Mail eXtension v1.51',64);
  405.         end;
  406.     end;
  407.  
  408. end;
  409.  
  410. procedure TFormWin95.btnReplyClick(Sender: TObject);
  411. begin
  412.     If IsActiveSession = True Then
  413.     begin
  414.         MXMessage2.Action:= ACTION_REPLY;
  415.         MXMessage2.Action:= ACTION_SENDMSG;
  416.         If MXMessage2.ErrorNum <> 0 Then
  417.         begin
  418.             MessageBox(0,'Unable to Send Message','Mail eXtension v1.51',64);
  419.         end;
  420.     end;
  421. end;
  422.  
  423. procedure TFormWin95.btnPasswordClick(Sender: TObject);
  424. begin
  425.    If IsActiveSession = True Then
  426.    begin
  427.       PasswordDlg.Password.Text:='';
  428.       PasswordDlg.Password2.Text:='';
  429.       PasswordDlg.ShowModal;
  430.    end;
  431. end;
  432.  
  433. end.
  434.  
  435.  
  436.